package com.cangxuan.app.utils;

import android.os.Build;

import java.util.UUID;

/**
 * 设备工具类
 */
public class DeviceUtils {

    private static String deviceID;

    /**
     * 获取设备ID
     * @return
     */
    public static String getDeviceID() {
        if (deviceID != null) {
            return deviceID;
        }
        String serial;
        String m_szDevIDShort = "随机两位数" +
                Build.BOARD.length() % 10 + Build.BRAND.length() % 10 +
                Build.CPU_ABI.length() % 10 + Build.DEVICE.length() % 10 +
                Build.DISPLAY.length() % 10 + Build.HOST.length() % 10 +
                Build.ID.length() % 10 + Build.MANUFACTURER.length() % 10 +
                Build.MODEL.length() % 10 + Build.PRODUCT.length() % 10 +
                Build.TAGS.length() % 10 + Build.TYPE.length() % 10 +
                Build.USER.length() % 10; //13 位
        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                serial = android.os.Build.getSerial();
            } else {
                serial = Build.SERIAL;
            }
            //API>=9 使用serial号
            return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();
        } catch (Exception exception) {
            //serial需要一个初始化
            serial = "default"; // 随便一个初始化
        }
        //使用硬件信息拼凑出来的15位号码
        deviceID = new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();
        return deviceID;
    }

}
